import judge from './judge'
/**
 * @description 创建节点
 * @param {Object} vnode 
 */
export default function createElem(vnode) {
  let domnode = document.createElement(vnode.sel)

  // 标签内容是文字
  if (vnode.text != '' && (vnode.children == undefined || vnode.children.length == 0)) {
    domnode.innerText = vnode.text
  }
  // 标签内容是子节点，递归创建节点，然后appendChild到父节点domnode
  // else if (Array.isArray(vnode.children) && vnode.children.length != 0) {
  else if (judge.hasChildren(vnode)) {
    for (let i = 0, len = vnode.children.length; i < len; ++i) {
      const ch = vnode.children[i]
      domnode.appendChild(createElem(ch))
    }
  }
  // 创建完毕，DOM节点保存到vnode里
  vnode.elm = domnode

  // 这个部分是自己尝试将一些属性加到DOM里
  // 只需要检查当前这一层的 data 即可
  const props = vnode.data.props
  if (props) {
    for (let key in props) {
      vnode.elm.setAttribute(key, props[key])
      console.log(key);
    }
  }
  const classlist = vnode.data.classlist
  if (classlist) {
    // console.log('开始插入类');
    for (const key in classlist) {
      if (classlist[key]) {
        vnode.elm.classList.add(key)
      }
    }
  }

  return vnode.elm
}
